/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package systole.view.settings;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import systole.processor.correlation.CorrelationKind;
import systole.propertiesController.SettingsProperties;
import systole.view.abstractController.AbstractEditViewController;

/**
 *
 * @author jmj
 */
public class ControllerSettings extends AbstractEditViewController {

    private JDialogSettings dialogSettings;
    private SettingsProperties settingsProperties;

    /**
     * 
     * @param parent
     */
    public ControllerSettings(java.awt.Frame parent) {
        super();
        this.settingsProperties = new SettingsProperties();
        this.dialogSettings = new JDialogSettings(parent, this);
        this.setCloseListener(dialogSettings);
    }

    /**
     *
     */
    public void showSettings() {
        this.initForm();
        this.loadPropertiesOnForm();
        this.dialogSettings.setLocationRelativeTo(dialogSettings.getParent());
        this.dialogSettings.setVisible(true);
    }

    /**
     *
     */
    public void ok() {
        this.loadPropertiesFromForm();
        this.settingsProperties.saveProperties();
        this.dialogSettings.setVisible(false);
    }

    public void cancel() {
        this.dialogSettings.setVisible(false);
    }

    private void loadPropertiesFromForm() {
        this.settingsProperties.saveImportSignalPath(this.dialogSettings.getjTxtImportDir().getText());
        this.settingsProperties.saveExportReportPath(this.dialogSettings.getjTxtExportDir().getText());
        this.settingsProperties.saveCorrelationValue((Integer) this.dialogSettings.getjSpnCorrelation().getValue());
        this.settingsProperties.saveMaxAmountOfSegments((Integer) this.dialogSettings.getjSpnAmount().getValue());
        this.settingsProperties.saveCorrelationKind((CorrelationKind) this.dialogSettings.getjCmbCorrelation().getSelectedItem());
    }

    private void loadPropertiesOnForm() {
        this.dialogSettings.getjTxtImportDir().setText(this.settingsProperties.loadImportSignalPath());
        this.dialogSettings.getjTxtExportDir().setText(this.settingsProperties.loadExportReportPath());
        this.dialogSettings.getjSpnAmount().setValue(this.settingsProperties.loadMaxAmountOfSegments());
        this.dialogSettings.getjSpnCorrelation().setValue(this.settingsProperties.loadCorrelationValue());
        this.dialogSettings.getjCmbCorrelation().setSelectedItem(this.settingsProperties.loadCorrelationKind());
    }

    private void initForm() {
        this.dialogSettings.getjCmbCorrelation().removeAllItems();
        ComboBoxModel cbModel = new DefaultComboBoxModel(CorrelationKind.values());
        this.dialogSettings.getjCmbCorrelation().setModel(cbModel);
    }
}
